const BundleAnalyzerPlugin =
  require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
const HardSourceWebpackPlugin = require("hard-source-webpack-plugin");
const JsonStringifyPlugin = require("./plugin/ceshi");

module.exports = {
  // publicPath: "./",
  transpileDependencies: true,
  devServer: {
    host: "localhost",
    port: 8080,
    // open: true,
    client: {
      overlay: false, //关闭全局弹窗的错误提示
    },
  },
  configureWebpack: (config) => {
    if (process.env.NODE_ENV === "development") {
      new HardSourceWebpackPlugin.ExcludeModulePlugin([
        // 用到了环境变量的文件会被缓存起来，在本地开发时运行不同环境时可能遇到bug
        // 例如：在main.js中注入了环境变量，如果该文件没被更改且被缓存，则切换环境后运行，main.js中的环境不会变
        // 此时应忽略该文件；或者全局用到的环境变量在main.js中定义，然后忽略该文件的缓存
        { test: /src[\\/]main\.js/ },
      ]);
    } else {
      // 为开发环境修改配置...
    }
  },
  //更改整个项目的标题
  chainWebpack: (config) => {
    config.plugin("html").tap((args) => {
      args[0].title = "您的新标题";
      return args;
    });
    config.plugin("json-stringify-plugin").use(JsonStringifyPlugin, [{}]);
  },
};
